// 封装axios
import axios from "axios";

// 封装拦截器
// 请求拦截器：携带jwt
// 响应拦截器：存储jwt、拆解config判断请求的状态也是ok的
// sessionStorage中存储jwt

axios.interceptors.request.use((cfg) => {
    // 如果存在jwt则携带
    let jwt = sessionStorage.getItem("jwt");
    if (jwt) {
        cfg.headers.Authorization = jwt;
    }
    // 无论是否携带jwt，最终一定要return
    return cfg;
});

axios.interceptors.response.use((res) => {
    // 保存请求返回的jwt值
    let jwt = res.data.context ? res.data.context.jwt : null;
    if (jwt) {
        sessionStorage.setItem("jwt", jwt);
    }
    return res;
});

// 导出axios
export default axios;
